package com.icinfo.cloud.provider.punish.common.datareport.enums;

import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 描述：案件更改后，上报数据的状态
 */
@AllArgsConstructor
@Getter
public enum CaseChangeReportStatusEnum {

    /**
     * 上报状态：1、待上报，2、无需上报，3、上报失败，4、上报成功
     */
    WAIT("1","待上报"),
    NO_NEED("2","无需上报"),
    FAILED("3","上报失败"),
    SUCCESS("4","上报成功");

    /**
     * 案件操作类型
     */
    private String code;
    /**
     * 描述
     */
    private String des;

    /**
     * 描述：根据code获取des
     *
     * @param code 编码
     * @return 描述内容
     */
    public static String getDesByCode(String code) {
        if (StrUtil.isEmpty(code)) {
            return null;
        }
        for (CaseChangeReportStatusEnum e : CaseChangeReportStatusEnum.values()) {
            if (code.equals(e.getCode())) {
                return e.getDes();
            }
        }
        return null;
    }

    /**
     * 描述：校验code是否是合法枚举
     *
     * @param code 枚举code
     * @return boolean 是否合法枚举（true-是/false-否）
     */
    public static boolean isLegalEnumCode(String code) {
        boolean flag = false;
        for (CaseChangeReportStatusEnum e : CaseChangeReportStatusEnum.values()) {
            if (e.getCode().equalsIgnoreCase(code)) {
                flag = true;
                break;
            }
        }
        return flag;
    }
}
